//
//  NetPostClass.h
//  TestAsiPost
//
//  Created by wrt on 14-9-4.
//  Copyright (c) 2014年 wrtsoft. All rights reserved.
//

#import <Foundation/Foundation.h>

//代理的回调方法
@protocol PostReturnDelegate<NSObject>

@required

@optional
/**
 *  post成功返回数据代理回调
 *
 *  @param comeBackDic 成功返回的字典数据
 *  @param tagNumber   标识号
 */
- (void)postSuccessfulWithString:(NSDictionary *)comeBackDic withTag:(int)tagNumber;//post成功返回数据
/**
 *  post失败返回的失败原因
 *
 *  @param faileString 失败返回的字典数据
 *  @param tagNumber   标识号
 */
- (void)postFailedWithString:(NSString *)faileString withTag:(int)tagNumber;//post失败返回的失败原因
@end


@interface NetPostClass : NSObject
{
    id <PostReturnDelegate> delegate;   //代理的名称
}
@property (nonatomic, assign) id<PostReturnDelegate> delegate; //代理的属性

//初始化方法
/**
 *  单例初始化方法
 *
 *  @return 本身的类
 */
+ (NetPostClass *)shareNetPostClass;

//注册
/**
 *  远程控制前的注册
 *
 *  @param username          用户名（不可空）
 *  @param password          密码（不可空）
 *  @param userCode          用户编号（可空）
 *  @param name              真实姓名（可空）
 *  @param sex               0为男，1为女（可空）
 *  @param credentialsTypeId 0为身份证（可空）
 *  @param credentialsNum    证件号码（可空）
 *  @param birthday          生日（可空）
 *  @param email             邮件（可空）
 *  @param registerTime      注册时间（可空）
 *  @param remark            备注（可空）
 *  @param address           地址（可空）
 *  @param telePhone         电话（可空）
 *  @param verification      验证码（不可空）
 */
- (void)postRegistInfoWithUserName:(NSString *)username andPassWord:(NSString *)password andUserCode:(NSString *)userCode andName:(NSString *)name andSex:(NSString *)sex andCredentialsTypeId:(NSString *)credentialsTypeId andCredentialsNum:(NSString *)credentialsNum andBirthday:(NSString *)birthday andEmail:(NSString *)email andRegisterTime:(NSString *)registerTime andRemark:(NSString *)remark andAddress:(NSString *)address andTelePhone:(NSString *)telePhone andVerification:(NSString *)verification;

//登录
/**
 *  用户登录WEB服务器
 *
 *  @param username 用户名（不可空）
 *  @param password 密码（不可空）
 *  @param ver      设备名称
 *  @param ca       证书编号
 */
- (void)postLoginInfoWithUserName:(NSString *)username andpassWord:(NSString *)password andDev:(NSString *)ver andCa:(NSString *)ca;

//自动放号
/**
 *  代替设备自动放号过程
 *
 *  @param username    用户名（不可空）
 *  @param password    密码（不可空）
 *  @param dev         设备名称
 *  @param deviceCode  设备ID
 *  @param devPassword 设备密码
 */
- (void)postAutoRegistInfoWithUserName:(NSString *)username andPassWord:(NSString *)password andDev:(NSString *)dev andDeviceCode:(NSString *)deviceCode andDevPassword:(NSString *)devPassword;

//重设密码
/**
 *  重设密码
 *
 *  @param username     用户名（不可空）
 *  @param password     密码（不可空）
 *  @param verification 验证码（不可空）
 */
- (void)postReSetPasswordWithUserName:(NSString *)username andPassWord:(NSString *)password andVerification:(NSString *)verification;

//验证码获取
/**
 *  获取验证码
 *
 *  @param userName 用户名（不可空）
 */
- (void)postGetCheckCodeWithUserName:(NSString *)userName;

//设备绑定
/**
 *  设备绑定
 *
 *  @param deviceCode     设备户名,对讲设备为呼号（不可空）
 *  @param devicePassword 设备密码（不可空）
 *  @param deviceType     业务类型（不可空）  0 对讲业务  20 网关  40 监控
 *  @param deviceName     用户自定义名称（可空）
 *  @param userName       用户名（不可空）
 *  @param password       密码（不可空）
 */
- (void)postBindingGatewayDeviceCode:(NSString *)deviceCode andDevicePassword:(NSString *)devicePassword andDeviceType:(NSString *)deviceType andDeviceName:(NSString *)deviceName andUserName:(NSString *)userName andPasssword:(NSString *)password;

//云备份上传
/**
 *  云备份上传
 *
 *  @param userName   用户名（不可空）
 *  @param password   密码（不可空）
 *  @param dev        设备名称
 *  @param deviceCode 设备ID
 *  @param filePath   文件路径
 */
- (void)postCloudBackupWithUserName:(NSString *)userName andPassWord:(NSString *)password andDev:(NSString *)dev andDeviceCode:(NSString *)deviceCode andFilepath:(NSString *)filePath;

//云备份查询
/**
 *  云备份查询
 *
 *  @param userName   用户名（不可空）
 *  @param password   密码（不可空）
 *  @param dev        设备名称
 *  @param deviceCode 设备ID
 */
- (void)postCloudQueryWithUserName:(NSString *)userName andPassWord:(NSString *)password andDev:(NSString *)dev andDeviceCode:(NSString *)deviceCode;

/**
 *  获取绑定设备的列表
 *
 *  @param userName 用户名（不可空）
 *  @param password 密码（不可空）
 */
- (void)postBindingListWithUserName:(NSString *)userName andPassWord:(NSString *)password;

/**
 *  添加绑定
 *
 *  @param userName       用户名（不可空）
 *  @param password       密码（不可空）
 *  @param deviceCode     设备ID
 *  @param devicePassword 设备密码
 *  @param deviceType     设备类型
 *  @param deviceName     设备自定义名称
 *  @param dev            设备名称
 */
- (void)postBindExtensionWithUserName:(NSString *)userName andPassWord:(NSString *)password andDeviceCode:(NSString *)deviceCode andDevicePassword:(NSString *)devicePassword andDeviceType:(int)deviceType andDeviceName:(NSString *)deviceName andDev:(NSString *)dev;

/**
 *  解除绑定
 *
 *  @param userName       用户名（不可空）
 *  @param password       密码（不可空）
 *  @param deviceCode     设备ID
 *  @param devicePassword 设备密码
 */
- (void)postUnBindExtensionWithUserName:(NSString *)userName andPassWord:(NSString *)password andDeviceCode:(NSString *)deviceCode andDevicePassword:(NSString *)devicePassword;

@end
